package ProyectoEstacionamiento;

import java.util.ArrayList;
import java.util.List;

public class Formados {
   private List<Auto> formados;
   
   public  Formados (){
       formados= new ArrayList();
   }
   
   public synchronized void FormarAuto(String id){
                Auto vocho = new Auto();                        //genero un nuevo auto
                formados.add(vocho);                            //agrego el auto a la lista
                System.out.println("Productor "+id+": se ha formado el auto "+vocho.getMatricula()+", en la Entrada "+id);
             /*   //impresion
                System.out.printf("\t\t\t\tFormadosEnt%s: ",id);
                for (int h=0;h<formados.size();h++){
                    System.out.printf("[%s]",formados.get(h).getMatricula());
                }
                System.out.println("");   */       
        try {
            wait(100);                                     //me detengo de producir tantito
        } catch (InterruptedException ex) { }
        notifyAll();
        }
   
   public synchronized Auto sacarAuto(){

                while (formados.isEmpty()){
                    try {
                        //if(formados.isEmpty())System.out.println(nombre+": No hay nadie formado me dormiré" );else
                        //if(listaEst.size()==capacidad)System.out.println(nombre+": Estacionamiento lleno me dormiré" );
			wait();
                        //wait();                                 //se pone a dormir y cede el monitor
		   } catch (InterruptedException e) {}
                }
                Auto vocho = formados.remove(0);                //saca al auto de estar formado                            //agrega un auto al estacionamiento
                //System.out.println("desforme a: "+vocho.getMatricula());
                notifyAll();                                //despierta a todos los hilos            
                return vocho;
        }

    public List<Auto> getFormados() {
        return formados;
    }

    public void setFormados(List<Auto> formados) {
        this.formados = formados;
    }
}
